/*****
 * 验证密码
 * ****/
$.extend($.fn.validatebox.defaults.rules, {  
	contrastPassWord: {  
        validator: function(value,param){  
            return value == $(param[0]).val();  
            
        },  
     
        message: '密码输入不一致'  
    },
    minLength: {// 判断字符串是否足够长
		validator: function(value, param){ 
			return value.length >= param[0]; 
		}, 
		message: '请至少输入 {0} 个字符' 
	},
	maxLength: {// 判断字符串是否超过最大长度
		validator: function(value, param){ 
			return value.length <= param[0]; 
		}, 
		message: '请最多输入 {0} 个字符' 
	}
}); 

/**
 * 判断开始字符是否是XX
 * 
 */
startWith = function(source, str) {
	var reg = new RegExp("^" + str);
	return reg.test(source);
};

/**
 * 增加formatString功能
 * @example formatString('字符串{0}字符串{1}字符串','第一个变量','第二个变量');
 * 
 * @returns 格式化后的字符串
 */
formatString = function(str) {
	for (var i = 0; i < arguments.length - 1; i++) {
		str = str.replace("{" + i + "}", arguments[i + 1]);
	}
	return str;
};

modalDialog = function(options) {
	var opts = $.extend({
		title : '&nbsp;',
		width : 640,
		height : 430,
		modal : true,
		onClose : function() {
			$(this).dialog('destroy');
		}
	}, options);
	opts.modal = true;// 强制此dialog为模式化，无视传递过来的modal参数
	if (options.url) {
		opts.content = '<iframe id="" src="' + options.url + '" allowTransparency="true" scrolling="false" width="100%" height="98%" frameBorder="0" name=""></iframe>';
	}
	return $('<div/>').dialog(opts);
};

/**
 * 将form表单元素的值序列化成对象
 * 
 * @example sy.serializeObject($('#formId'))
 * 
 * @requires jQuery
 * 
 * @returns object
 */
serializeObject = function(form) {
	var o = {};
	$.each(form.serializeArray(), function(index) {
		if (this['value'] != undefined && this['value'].length > 0) {// 如果表单项的值非空，才进行序列化操作
			if (o[this['name']]) {
				o[this['name']] = o[this['name']] + "," + this['value'];
			} else {
				o[this['name']] = this['value'];
			}
		}
	});
	return o;
};

/**
 * 判断对象是否为空
 * 
 * @param data
 */
function isNull(data) {
	return (data == "" || data == undefined || data == null) ? "" : data;
}

/**
 * 判断值是否为空
 * @param v
 * @returns {Boolean}
 */
function isEmpty(v){
	switch (typeof v){
		case 'undefined':
			return true;
		case 'string':
			if(v.trim().length == 0){
				return true;
			}
			break;
		case 'boolean':
			if(!v){
				return true;
			}
			break;
		case 'number':
			if(0 === v){
				return true;
			}
			break;
		case 'object':
			if(null === v){
				return true;
			}
			if(undefined !== v.length && v.length==0){
				return true;
			}
			for(var k in v){
				return false;
			}
			return true;
			break;
	}
	return false;
}

/**
 * 新建窗口对象
 * 
 * @param wId
 * @param url
 * @param title
 * @param width
 * @param height
 * @param ico
 * @param fit
 */
function createWin(wId, url, title, width, height, ico, fit) {
	var id;
	if (wId != null && wId != "") {
		id = wId;
	} else {
		n += 1;
		id = "popw" + n;
	}
	var drb = true;
	title ? title = title : title = "窗口标题";
	width ? width = width : width = 600;
	height ? height = height : height = 400;
	ico ? ico = ico : ico = "ico_034";
	fit ? fit = fit : fit = false;
	fit ? drb = false : drb = true;
	$("<div/>").appendTo("body").attr("id", id);
	$("#" + id).window({
		title : title,
		width : width,
		height : height,
		modal : true,
		shadow : false,
		closed : false,
		iconCls : ico,
		draggable : drb,
		fit : fit,
		minimizable : false,
		maximizable : false,
		collapsible : false,
		onClose : function() {
			$("#" + id).remove();
		}
	});
	$("<iframe height='100%' width='100%' class=\"popiframe\" frameborder=\"0\"/>").appendTo("#" + id).attr("src", url);
}

//全局ajax控制，用于session超时 无权限时 提示  
$.ajaxSetup({  
    cache: false, //close AJAX cache  
    contentType:"application/x-www-form-urlencoded;charset=utf-8",   
    dataType:'json',
    complete:function(XHR,textStatus){     
        var resText = XHR.responseText;  
        if(resText=='ajaxSessionTimeOut'){     
            sessionTimeOut();  
        }  
        else if(resText=='ajaxNoRole'){     
            noLimit();  
        }          
    }   
});  
  
function sessionTimeOut(){  
    $.messager.alert('操作提示','用户登录会话已过期，请重新登录！','warning');  
    setTimeout('window.top.location.href = basePath+"/frame/login.ft"', 0);  
}  
  
function noLimit(){  
	parent.$.messager.alert('操作提示','无相应操作权限，请联系系统管理员！','warning');  
}

/**
 *登出方法(公共方法) 
 */
function logout(){
		$.post(basePath + '/userlogin!notNeedRoleLogout.ft', function(result) {
			location.replace(basePath + '/frame/login.ft');
		}, 'json');
}

function queryRoleBtn(menuId){
	var btn;
	$.ajax({
		url:basePath+'/role/rolemenu!notNeedRoleGetRoleBtn.ft',
 		data:{'id':menuId},
 		async:false,
 		success:function(data){
 			var len = data.length;
 			var tmp;
 			btn= data;
 	        for(var i=0;i<len-1;i++){
 	            for(var j=0;j<len-1-i;j++){
 	                if(data[j].sortNo>data[j+1].sortNo){
 	                    tmp = data[j];
 	                    data[j] = data[j+1];
 	                    data[j+1] = tmp;
 	                }
 	            }
 	        }
 		}
	});
	return btn;
}
/**
 * 将2008-8-4 8:50:01时间转化成2014/12/11 15:12:10格式
 */
function turnDateFormat(date){
	var inTime;
	var outTime
	if(date==null){
		return false;
	}else{
		inTime = date.replace(/\-/g, "/");
		outTime = new Date(inTime);
		return outTime;
	}
}
/**
 * 创建时间格式为2008-8-4 8:50:01的时间，如var date = new Date().Format("yyyy-MM-dd hh:mm:ss");
 */
Date.prototype.Format = function (fmt) { 
	    var o = {
	        "M+": this.getMonth() + 1, //月份 
	        "d+": this.getDate(), //日 
	        "h+": this.getHours(), //小时 
	        "m+": this.getMinutes(), //分 
	        "s+": this.getSeconds(), //秒 
	        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
	        "S": this.getMilliseconds() //毫秒 
	    };
	    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	    for (var k in o)
	    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
	    return fmt;
}
//function turnTimeFormat()
/**
 * 计算两个格式为2008-8-4 8:50:01 的分钟差值sTime < eTime
 */
function getMinutes(sTime,eTime){
	if(isEmpty(sTime)){
		sTime = new Date().Format("yyyy-MM-dd hh:mm:ss");
	}
	if(isEmpty(eTime)){
		eTime = new Date().Format("yyyy-MM-dd hh:mm:ss");
	}
	var st = new Date(turnDateFormat(sTime));
	var et = new Date(turnDateFormat(eTime));
	var Minutes = (et.getTime() -st.getTime())/60000;
	return parseInt(Minutes)
}
/**
 * 删除字符串str中的空格
 * @param str
 * @returns
 */
function Jtrim(str){
	var i = 0; 
	var len = str.length; 
	if ( str == "" ) return( str ); 
	j = len -1; 
	flagbegin = true; 
	flagend = true;
	while(( flagbegin == true) && (i< len)){ 
		if ( str.charAt(i) == " " ){ 
			i=i+1; 
			flagbegin=true; 
		}else { 
			flagbegin=false; 
		} 
	}
	while((flagend== true) && (j>=0)){ 
		if (str.charAt(j)==" ") { 
			j=j-1; 
			flagend=true; 
		}else { 
			flagend=false; 
		} 
	} 
	if ( i > j ) return (""); 
	trimstr = str.substring(i,j+1); 
	return trimstr; 
} 
	
/**
 * 获取URL传递过来的参数
 * @returns {Object} 
 * 例如：
 * var params = getRequest();
 * var id = params['id'];
 */
function getRequest(){
	var url = location.search; //获取url中"?"符后的字串
	var theRequest = new Object();
	if(url.indexOf("?") != -1)
	{ 
	  var str = url.substr(1);
	    strs = str.split("&");
	  for(var i = 0; i < strs.length; i ++)
	    { 
	     theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
	    }
	}
	return theRequest;
}
//easyui中的序号Rownumber越来越大,达到三位数或者四位数的时候,Rownumber就显示不全了.
$.extend($.fn.datagrid.methods, {
	fixRownumber : function (jq) {
		return jq.each(function () {
			var panel = $(this).datagrid("getPanel");
			//获取最后一行的number容器,并拷贝一份
			var clone = $(".datagrid-cell-rownumber", panel).last().clone();
			//由于在某些浏览器里面,是不支持获取隐藏元素的宽度,所以取巧一下
			clone.css({
				"position" : "absolute",
				left : -1000
			}).appendTo("body");
			var width = clone.width("auto").width();
			//默认宽度是25,所以只有大于25的时候才进行fix
			if (width > 25) {
				//多加5个像素,保持一点边距
				$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
				//修改了宽度之后,需要对容器进行重新计算,所以调用resize
				$(this).datagrid("resize");
				//一些清理工作
				clone.remove();
				clone = null;
			} else {
				//还原成默认状态
				$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
			}
		});
	}
});	

